
package Administrador.Interfaz;

import FabricaProductos.Carpas;
import FabricaProductos.FabricaArticulos;
import FabricaProductos.FabricaProductos;
import FabricaProductos.ProductosCamping;
import Iterador.Agregado;
import Iterador.Iterador;
import Iterador.IteradorConcreto;
import java.util.ArrayList;
import java.util.Calendar;

/**
 *
 * @author leydijch
 */
public class GestorProductos implements Agregado{
    private static GestorProductos instance;
    private FabricaArticulos fabrica;
    public ArrayList<ProductosCamping> productos = null;
    public boolean existe=false;
    

    private GestorProductos() {
        setFabrica(new FabricaProductos());
        productos = new ArrayList<ProductosCamping>();
           
    }

    public static GestorProductos getInstance() {
        if (instance == null) {
            instance = new GestorProductos();
            
        }
        return instance;
    }

    public void adicionarProductoAInventario(String categoria,String codigoProducto,String nombre,String empresaFab,String DescripcionT,
    String precioUnitario,String pIva,String uDisponibles,String duso,String dancho,
    String dLargo,String dColor,String dMaterial) {
        productos.add(getFabrica().crearProductoCamping(categoria,codigoProducto,nombre,empresaFab,DescripcionT,
                precioUnitario,pIva,uDisponibles,duso,dancho,dLargo,dColor,dMaterial));

        //System.out.println(vehiculos.get(0).getClass().getSimpleName());
    }
    
    public int buscarProducto(String codigo){
        
        
        int cont =0;
        while(cont!=productos.size()){
            if(codigo.equals(productos.get(cont).getCodigoProducto())){
                
                break;
            }else{
                System.out.println(cont);
                cont++;
                
            }
        }
        return cont;
    }

    public ArrayList obtenerArrayProductos() {
        return productos;
    }

    /**
     * @return the fabrica
     */
    public FabricaArticulos getFabrica() {
        return fabrica;
    }

    /**
     * @param fabrica the fabrica to set
     */
    public void setFabrica(FabricaArticulos fabrica) {
        this.fabrica = fabrica;
    }

    //cambiar
    public double obtenerTotalInventario() {
        return 4000;
    }

    public Iterador obtenerIterador() {
        return new IteradorConcreto(this);
    }
}
